Spectre and Meltdown
本来読めてはいけない秘密のデータなどが格納されているメモリを権限の低い別のプロセスから読めてしまう
Spectre
Variant 1
Bounds Check Bypass
Variant 2
Branch Target Injection
Meltdown
Variant 3
Rouge Cache Data Load
Variant 3a
Rouge System Register Read
Spectre NG
Vatiant 4
Speculative Store Bypass
Foreshadow(-NG)
L1 Terminal Fault
レジスタリネーミング
物理レジスタを内部のレジスタにリネームすることで命令の依存をより少なく
Tomasuloのアルゴリズム
speculative execution (投機的実行)
条件分岐が発生する命令において、条件判断が確定する前にリソース使用量を遊ばせないように一方の確率が高い条件ルートを先に実行しておく。
アウトオブオーダ実行
処理完了に時間がかかるような命令に対してはそれ以降の命令の実行可能な命令に対しては先に実行処理してしまう。(以前の命令の状態に依存するような命令は実行できない?)
先回りされていた命令において例外などが発生していたらそれ以降の命令の実行結果は取り消し。